/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sys.donto.paciente;

import java.util.List;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import sys.donto.util.GenericDAO;
import sys.donto.util.HibernateUtil;

/**
 *
 * @author Cliente Master
 */
public class PacienteDAO extends GenericDAO<Paciente>{
     public PacienteDAO() {
        super(Paciente.class);
    }
    public List <Paciente> pesquisaDescricao(String Nome){
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        List <Paciente> pacientes = (List<Paciente>) getSessao().createCriteria(Paciente.class).
                add(Restrictions.ilike("paciente", Nome, MatchMode.ANYWHERE)).
                addOrder(Order.asc("paciente")).list();
        
        getSessao().close();
        return pacientes;
    }
    
    public Paciente pesquisaId(int id){
        setSessao(HibernateUtil.getSessionFactory().openSession());
        setTransacao(getSessao().beginTransaction());
        
        Paciente paciente = (Paciente) getSessao().createCriteria(Paciente.class).
                add(Restrictions.eq("id", id)).uniqueResult();
        
        getSessao().close();
        return paciente;
    }
    public Paciente pesquisaNome(String nome) {
        setSessao (HibernateUtil.getSessionFactory().openSession());
        setTransacao (getSessao().beginTransaction());
        Paciente paciente
                = (Paciente) getSessao().createCriteria(Paciente.class).
                        add(Restrictions.eq("nome", nome)).uniqueResult();
        return paciente;
    }
    
    public void salvar(Paciente pac){
        if(pac.getId()==0){
            adicionar(pac);
        } else {
            atualizar(pac);
        }
    }
    public Paciente pesquisaCpf(String cpf) {
        setSessao (HibernateUtil.getSessionFactory().openSession());
        setTransacao (getSessao().beginTransaction());
        Paciente paciente
                = (Paciente) getSessao().createCriteria(Paciente.class).add(Restrictions.eq("cpf", cpf)).uniqueResult();
        return paciente;
    }
    
}
